home *** CD-ROM | disk | FTP | other *** search
/ boe.pres.k12.wv.us / boe.pres.k12.wv.us.zip / boe.pres.k12.wv.us / Utilities / Xerox Workcentre 5335 / Windows Utilities / Font Management Utility / espanol / Xerox Font Management Utility.msi / Data1.cab / F3725_Fmu.chm / skinsupport / madcapeffectsmenu.js < prev    next >
Text File  |  2009-07-16  |  8KB  |  286 lines

  1. // {{MadCap}} //////////////////////////////////////////////////////////////////
  2. // Copyright: MadCap Software, Inc - www.madcapsoftware.com ////////////////////
  3. ////////////////////////////////////////////////////////////////////////////////
  4. // <version>3.0.0.0</version>
  5. ////////////////////////////////////////////////////////////////////////////////
  6.  
  7. function FMCSetClass(node, className)
  8. {
  9.     node.className = className;
  10.     
  11.        for ( i = 0; i < node.childNodes.length; i++ )
  12.     {
  13.         var child = node.childNodes[i];
  14.         FMCBroadcastNodeText(node, child);
  15.     }
  16. }
  17.  
  18. function FMCBroadcastNodeText(node, child)
  19. {
  20.     if( child.style == null) return;
  21.         
  22.          child.style.color = FMCGetComputedStyle( node, "color" );
  23.         child.style.fontFamily = FMCGetComputedStyle( node, "fontFamily" );
  24.         child.style.fontSize = FMCGetComputedStyle( node, "fontSize" );
  25.         child.style.fontStyle = FMCGetComputedStyle( node, "fontStyle" );
  26.         child.style.fontVariant = FMCGetComputedStyle( node, "fontVariant" );
  27.         child.style.fontWeight = FMCGetComputedStyle( node, "fontWeight" );
  28.         child.style.textDecoration = FMCGetComputedStyle( node, "textDecoration" );
  29.         child.style.textTransform = FMCGetComputedStyle(node, "textTransform" );     
  30.  
  31.        for ( i = 0; i < child.childNodes.length; i++ )
  32.     {
  33.         var grandchild = child.childNodes[i];
  34.     
  35.         FMCBroadcastNodeText(node, grandchild);
  36.     }
  37. }
  38.  
  39. function FMCSelectCell(node, select)
  40. {
  41.     var cell = FMCFindCell(node);
  42.     var table = FMCFindTable(cell);
  43.             
  44.     if(cell == table.MCSelectedCell) 
  45.     {
  46.         if( !select)
  47.         {
  48.             FMCSetClass(table.MCSelectedCell, "MCKLinkBodyCell");
  49.             table.MCSelectedCell = null;
  50.             return;
  51.        } 
  52.        
  53.        return;
  54.     }
  55.  
  56.     if( !select)
  57.     {
  58.         return;
  59.     }
  60.     
  61.     if(table.MCSelectedCell != null)
  62.     {
  63.         FMCSetClass(table.MCSelectedCell, "MCKLinkBodyCell");
  64.         table.MCSelectedCell = null;
  65.     }
  66.     
  67.     table.MCSelectedCell = cell;
  68.     
  69.     if(table.MCSelectedCell != null)
  70.     {
  71.         FMCSetClass(table.MCSelectedCell, "MCKLinkBodyCell_Highlighted");
  72.     }
  73. }
  74.  
  75. function FMCFindTable(node)
  76. {
  77.     if(node.nodeName == "TABLE") return node;
  78.     
  79.     return FMCFindTable(node.parentNode);
  80. }
  81.  
  82. function FMCFindCell(node)
  83. {
  84.     if(node.nodeName == "TD" || node.nodeName == "TH") return node;
  85.     
  86.     return FMCFindCell(node.parentNode);
  87. }
  88.  
  89. function FMCLinkControl( e, node )
  90. {
  91.     // Don't continue if something is already popped up
  92.     
  93.     if ( gPopupObj )
  94.     {
  95.         return;
  96.     }
  97.     
  98.     if ( !e )
  99.     {
  100.         e = window.event;
  101.     }
  102.  
  103.     var clientX    = FMCGetClientX( window, e );
  104.     var clientY    = FMCGetClientY( window, e );
  105.     var pageX    = FMCGetPageX( window, e );
  106.     var pageY    = FMCGetPageY( window, e );
  107.         
  108.     var args    = { node: node, clientX: clientX, clientY: clientY, pageX: pageX, pageY: pageY };
  109.     
  110.     GetHelpControlLinks( node, OnGetHelpControlLinks, args );
  111. }
  112.  
  113. function OnGetHelpControlLinks( topics, args )
  114. {
  115.     var node        = args.node;
  116.     var klinkBody    = document.createElement( "div" );
  117.     var table        = document.createElement( "table" );
  118.     var tbody        = document.createElement( "tbody" );
  119.     
  120.     klinkBody.className = "MCKLinkBody";
  121.     klinkBody.style.overflow = "auto";
  122.     klinkBody.MCOwner = node;
  123.     klinkBody.onkeyup = FMCKLinkBodyOnkeyup;
  124.     
  125.     table.style.border = "none";
  126.     table.style.margin = "0px";
  127.     table.style.padding = "0px";
  128.     table.style.borderCollapse = "collapse";
  129.     
  130.     //
  131.     
  132.     if ( topics.length == 0 )
  133.     {
  134.         topics = new Array( 1 );
  135.         topics[0] = "(No topics)|javascript:void( 0 );";
  136.     }
  137.     
  138.     FMCSortStringArray( topics );
  139.     
  140.     table.appendChild( tbody );
  141.     klinkBody.appendChild( table );
  142.     document.body.appendChild( klinkBody );
  143.     
  144.     for ( var i = 0; i < topics.length; i++ )
  145.     {
  146.         var topic    = topics[i].split( "|" );
  147.         var tr        = document.createElement( "tr" );
  148.         var td        = document.createElement( "td" );
  149.         var a        = document.createElement( "a" );
  150.  
  151.         td.onmouseover = function() { FMCSelectCell( this, true ); };    
  152.         
  153.         td.onclick = function()
  154.         {
  155.             FMCSelectCell( this, false );
  156.             
  157.             var inPreviewMode    = FMCInPreviewMode();
  158.             
  159.             if ( !inPreviewMode )
  160.             {
  161.                 var rootFrame    = FMCGetRootFrame();
  162.                 
  163.                 rootFrame.frames["body"].document.location.href = this.getElementsByTagName( "a" )[0].href;
  164.             }
  165.             else
  166.             {
  167.                 return false;
  168.             }
  169.         };
  170.         
  171.         a.appendChild( document.createTextNode( topic[0] ) );
  172.         a.href = topic[1];
  173.         a.target = "body";
  174.         
  175.         td.appendChild( a );
  176.         tr.appendChild( td );
  177.         tbody.appendChild( tr );
  178.  
  179.         FMCSetClass( td, "MCKLinkBodyCell" );
  180.     }
  181.     
  182.     // "+ 5" is to account for width of popup shadow.
  183.     
  184.     var clientHeight    = FMCGetClientHeight( window, false );
  185.     var clientWidth        = FMCGetClientWidth( window, false );
  186.     
  187.     if ( klinkBody.offsetHeight + 5 > clientHeight )
  188.     {
  189.         klinkBody.style.height = (clientHeight - 5 - 2) + "px";    // "- 3" is to account for klinkBody borders.
  190.         klinkBody.style.width = klinkBody.offsetWidth + 19 + "px";    // "+ 19" is to account for scrollbar.
  191.     }
  192.     
  193.     if ( klinkBody.offsetWidth + 5 > clientWidth )
  194.     {
  195.         klinkBody.style.width = (clientWidth - 5 - 2) + "px";    // "- 3" is to account for klinkBody borders.
  196.         klinkBody.style.height = klinkBody.offsetHeight + 19 + "px";    // "+ 19" is to account for scrollbar.
  197.     }
  198.     
  199.     //
  200.     
  201.     var clientX    = 0;
  202.     var clientY    = 0;
  203.     var pageX    = 0;
  204.     var pageY    = 0;
  205.     
  206.     if ( node.MCKeydown )
  207.     {
  208.         if ( node.parentNode.style.position == "absolute" )
  209.         {
  210.             topOffset = document.getElementById( "searchField" ).offsetHeight;
  211.             
  212.             clientX = node.parentNode.offsetLeft - node.parentNode.parentNode.parentNode.scrollLeft;
  213.             clientY = node.parentNode.offsetTop - node.parentNode.parentNode.parentNode.scrollTop + topOffset;
  214.             pageX = node.parentNode.offsetLeft - node.parentNode.parentNode.parentNode.scrollLeft;
  215.             pageY = node.parentNode.offsetTop - node.parentNode.parentNode.parentNode.scrollTop + topOffset;
  216.         }
  217.         else
  218.         {
  219.             clientX = node.offsetLeft - FMCGetScrollLeft( window );
  220.             clientY = node.offsetTop - FMCGetScrollTop( window );
  221.             pageX = node.offsetLeft;
  222.             pageY = node.offsetTop;
  223.         }
  224.     }
  225.     else
  226.     {
  227.         clientX = args.clientX;
  228.         clientY = args.clientY;
  229.         pageX = args.pageX;
  230.         pageY = args.pageY;
  231.     }
  232.     
  233.     // "+ 5" is to account for width of popup shadow.
  234.     
  235.     if ( clientY + klinkBody.offsetHeight + 5 > FMCGetClientHeight( window, false ) )
  236.     {
  237.         klinkBody.style.top = FMCGetScrollTop( window ) + clientHeight - klinkBody.offsetHeight - 5 + "px";
  238.     }
  239.     else
  240.     {
  241.         klinkBody.style.top = pageY + "px";
  242.     }
  243.     
  244.     if ( clientX + klinkBody.offsetWidth + 5 > FMCGetClientWidth( window, false ) )
  245.     {
  246.         klinkBody.style.left = FMCGetScrollLeft( window ) + clientWidth - klinkBody.offsetWidth - 5 + "px";
  247.     }
  248.     else
  249.     {
  250.         klinkBody.style.left = pageX + "px";
  251.     }
  252.     
  253.     if ( node.MCKeydown )
  254.     {
  255.         klinkBody.getElementsByTagName( "a" )[0].focus();
  256.         node.MCKeydown = false;
  257.     }
  258.     
  259.     // Set up background
  260.     
  261.     var klinkBodyBG = document.createElement( "span" );
  262.     
  263.     klinkBodyBG.className = "MCKLinkBodyBG";
  264.     klinkBodyBG.style.top = parseInt( klinkBody.style.top ) + 5 + "px";
  265.     klinkBodyBG.style.left = parseInt( klinkBody.style.left ) + 5 + "px";
  266.     klinkBodyBG.style.width = klinkBody.offsetWidth + "px";
  267.     klinkBodyBG.style.height = klinkBody.offsetHeight + "px";
  268.     
  269.     klinkBody.parentNode.appendChild( klinkBodyBG );
  270.     
  271.     //
  272.  
  273.     MCFader.FadeIn( klinkBody, klinkBodyBG );
  274. }
  275.  
  276. function FMCKLinkBodyOnkeyup( e )
  277. {
  278.     if ( !e ) { e = window.event; }
  279.     
  280.     if ( e.keyCode == 27 )
  281.     {
  282.         FMCClickHandler( e );
  283.         this.MCOwner.focus();
  284.     }
  285. }
  286.